Heretofore, digital data has been stored on IBM punch cards as bit punch-outs within a row and column matrix of bit positions across on the card. The data was entered along the rows of the card from left to right starting with the top row. The matrix included a row of redundant parity bits along the bottom row and a column of parity bits along the right hand column, for detecting and correcting small errors. Processing errors introduced by electronic aberrations such as low signal-to-noise caused single bit errors and multiple bit errors ("burst" errors) in the serial data stream. The parity bits permitted the detection and correction of short electronic burst errors which were limited to a single row of punch-outs. However, larger burst errors extending over several rows could not be corrected with these row and column parity bits. In addition, loss of data due to "blot" impairments in the physical structure of the card extending across several adjacent rows and columns could not be corrected with these parity bits.
Printed bar codes arranged in a row-column matrix have been employed with limited error correction; as disclosed in an article entitled "Information Encoding with Two Dimensional Bar Codes" by Theo Pavlidis et al, appearing in June 1992 edition of the IEEE at pages 18-28. FIG. 9 of this publication shows a row of checksums in code PDF417 format.